home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 February: Tool Chest / Dev.CD Feb 94.toast / New System Software Extensions / Thread Manager Extension 1.2 / Debugging Tools / VoodooMonkey 1.0d22 Changes < prev    next >
Encoding:
Text File  |  1993-09-14  |  15.1 KB  |  407 lines  |  [TEXT/MPS ]

  1. VoodooMonkey Change History (edited for external release)
  2. Mike Lockwood
  3. September 7, 1993
  4.  
  5.  
  6. 1.0d22 Changes
  7.  
  8.     Fixed an incompatibility between System 7 Pro and DebuggerINIT.  
  9.     
  10.     Removed support for AOCE under System 7.1.  Older AOCEs ran on top of System 7.1,
  11.     but it now ships with the System 7.1.1 System file.
  12.     
  13.     Fixed a case sensitivity problem that occured when a Sym file was renamed and
  14.     the "SYM" suffix was not all upper cased.
  15.     
  16.  
  17. 1.0d21 Changes
  18.  
  19.     Fixed an incompatibility between DebuggerINIT and Thread Manager 1.2.  Under
  20.     version 1.2, you could not open a stack crawl for an inactive thread!  
  21.     This is because one of the Thread Manager data structures changed between 
  22.     1.1 and 1.2.  As a result:
  23.     
  24.     ••••• VoodooMonkey now only supports Thread Manager 1.2 !!! •••••
  25.     
  26.     Of course, you can still use VoodooMonkey without the Thread Manager installed.
  27.     If you have Thread Manager 1.1 installed, VoodooMonkey will work, but thread 
  28.     specific features will be disabled
  29.     
  30.     Reenabled the MacApp object inspector.  This had been disabled in previous
  31.     releases, because it required changes in MacApp after 3.0.1.  These changes
  32.     just resurfaced in MacApp 3.1a1.  To use the object inspector, you must build
  33.     your MacApp 3.1 application with the -Inspector option.
  34.     
  35.     Fixed a few crashing bugs.
  36.     
  37.     Fixed a bug that caused a circular display of "Could not complete your request
  38.     because of a program error" dialogs.
  39.     
  40.  
  41. 1.0d20 Changes
  42.  
  43.     Added support for debugging ASLM shared libraries.  I tested this with
  44.     ASLM 1.1b7, but it will probably work with ASLM 1.0 as well.
  45.     
  46.     Variable windows now close automatically when the variable goes out of scope.
  47.     This avoids the slowness that occurs when stepping and out of scope variable
  48.     windows are open.  In SourceBug, variable windows stay open because they can 
  49.     come back in scope when you step back into the function the variable is from, 
  50.     but this never seemed to work in VoodooMonkey.
  51.     
  52.     When stepping, the stack crawl window is no longer brought infront of variable
  53.     windows.  This allows you watch variable values change more easily while you
  54.     are stepping.
  55.     
  56.     Fixed a bug resulting in occasional crashes in the DebuggerINIT when you stop
  57.     debugging a program.
  58.  
  59.     Stripped out references to secret Apple projects from this document, so it
  60.     could be released outside of Apple.
  61.     
  62.  
  63. 1.0d19 Changes
  64.  
  65.     Added support for displaying and editing variables that contain C bitfields.
  66.     
  67.     Removed a bogus DebugStr that said "wrong version of the Thread Manager".  
  68.     This message would sometimes occur if a program crashes badly, and ExitToShell
  69.     (either MacsBug "es" or the VoodooMonkey's Kill command) fails to kill the
  70.     process.
  71.     
  72.  
  73. 1.0d18 Changes
  74.  
  75.     Fixed a freak incompatibility between DebuggerINIT 1.0d17 and the (almost)
  76.     final Thread Manager.  Quitting applications is now safe practice.
  77.     
  78.  
  79. 1.0d17 Changes
  80.     
  81.     Fixed a bug that sometimes prevented disassembling code in the browswer
  82.     for an application that has not been launched yet.
  83.     
  84.     The DebuggerINIT now disables the Thread Manager's scheduler when it is 
  85.     handling events or exceptions.  This is done to avoid some reentrancy 
  86.     problems that might occur, like a preemtive thread creating a new thread
  87.     while the DebuggerINIT is handling a breakpoint.
  88.  
  89.     The "Clear All Breakpoints" command now clears all breakpoints in all 
  90.     programs being debugged.  This decision clears up ambiguity when debugging
  91.     with multiple sym files for one process, or multiple processes with one
  92.     Sym file
  93.     
  94.     VoodooMonkey no longer handles breakpoints or exceptions that occur in 
  95.     preemptive threads.  Breakpoints are ignored, and exceptions go to the 
  96.     low-level debugger.  This is for your own protection, since it is not
  97.     safe to switch to another process in a preemtive thread.
  98.     
  99.     Choosing "Open Process Browser", "Show Registers for…" or 
  100.     "Show FPU Registers for…" no longer creates a second window, if a window
  101.     is already open.
  102.     
  103.     The log window is now removed from the windows menu when it is closed.
  104.  
  105.     The "Show FPU Registers" menu item is now disabled if your machine doesn't
  106.     have an FPU.
  107.     
  108.     VoodooMonkey now prevents you from switching to the low-level debugger if
  109.     the PC is at a breakpoint.  This restriction is added because the DebuggerINIT
  110.     has no way to restore the breakpoint after stepping past it if you are in
  111.     MacsBug or TMON.  The user now must clear or step past the breakpoint before
  112.     switching to the low-level debugger.
  113.     
  114.     VoodooMonkey now immediately clears the stack crawl when the process resumes
  115.     execution.
  116.     
  117.     
  118. 1.0d16 Changes
  119.  
  120.     Revved to another change in the Thread Manager.  
  121.     ••••• VoodooMonkey now requires Thread Manager 1.0b3 or later!!! •••••
  122.  
  123.     VoodooMonkey is now compatible with the special AOCE Process Manager.
  124.     
  125.     You can now copy text from the source or assembler view, or the log window.
  126.  
  127.     The Log Window is now working (it had been in hibernation since the SourceBug days).
  128.     
  129.     Execution timing information is now displayed in the log window, rather
  130.     than a modal dialog.
  131.     
  132.     Fixed a problem handling SysBreakStr and SysBreakFunc when they are called
  133.     by a process that is not being debugged.
  134.     
  135.     Fixed a problem that prevented opening stack crawl windows for some threads
  136.     after targeting an already running threaded application.
  137.  
  138.  
  139. 1.0d15 Changes
  140.  
  141.     Cleaned up and tweaked the source so VoodooMonkey and DebuggerINIT would
  142.     compile with Symantec's SCpp 1.0b2.  However, due to a code generation bug
  143.     I ran into, I'm still building with MPW CFront.
  144.  
  145.  
  146. 1.0d14 Changes
  147.  
  148.     (Hopefully) fixed an occasional crash in the stack crawl for multithreaded
  149.     applications.
  150.  
  151.     Sped up opening views of very large functions.
  152.     
  153.     Moved the grow box back to the corner of the window, instead of inset within
  154.     the bottom right pane.
  155.     
  156.  
  157. 1.0d13 Changes
  158.  
  159.     When you target a process, either with the Target menu command or by 
  160.     entering via TMON, VoodooMonkey will try to open the Sym file for the
  161.     process if it isn't already open.
  162.     
  163.     Fixed a problem that occured when debugging applications without SIZE 
  164.     resources, or didn't have the canBackground bit set.  To avoid the
  165.     flashing effect, VoodooMonkey does not constantly switch the program
  166.     you are debugging to the front when you are stepping.  However, if 
  167.     the program does not background, the program does not wake up, and 
  168.     the step never completes.  Now, if the canBackground is not set, 
  169.     VoodooMonkey will force the program to the front.  
  170.     
  171.     Revved to a recent change in the Thread Manager.  The DebuggerINIT works
  172.     works with Thread Manager 1.0a3 or later.
  173.  
  174.     Fixed some bugs in processing events received from the DebuggerINIT.
  175.     Stack crawl windows now close when the associated thread is terminated,
  176.     and the object inspector is now being notified when objects are freed.
  177.     
  178.     The edit text in the "Evaluate…" no longer contains garbage characters.
  179.     
  180.  
  181. 1.0d12 Changes
  182.  
  183.     Added support for modifying variable values in variable windows.  
  184.     Just click on the variable value (to the right of the "=" sign) to
  185.     edit in place.  The view as options control the format in which the
  186.     variable is edited.  This feature has not been heavily tested yet,
  187.     so you might run into a few kinks here and there.
  188.     
  189.         WARNING:  Beware when editing StringHandles.  VoodooMonkey does not 
  190.         prevent you from changing a string to a longer string, which could 
  191.         result in writing beyond the end of the block and trashing the heap.
  192.     
  193.     The view as menu items now have a check to indicate how the selected node
  194.     in the memory view is being displayed.
  195.     
  196.     Changed the name of the "View as…" menu item to "Coerce to type…" to 
  197.     make it more obvious what this feature does.
  198.     
  199.     Fixed a problem displaying unions contained in structs.  The offset into
  200.     the struct was not being calculated properly, resulting in wrong values.
  201.     
  202.     "Evaluate this…" now has Command-T as a command key equivalent.
  203.     
  204.     Process Browser enhancements:
  205.         • Targeted processes are now shown in bold.  
  206.         • For a suspended process, the current thread is shown in bold.
  207.         • Processes are now sorted by name.
  208.         • Threads are now sorted by ThreadID.
  209.     
  210.     Added a new about box.
  211.     
  212.  
  213. 1.0d11 Changes
  214.  
  215.     The DebuggerINIT is now compatible with the 1.0a3 version of the 
  216.     Thread Manager.  The DebuggerINIT is no longer compatible with versions
  217.     before 1.0a3.
  218.     
  219.     Fixed some bugs related to debugging multi-threaded applications.
  220.     
  221.     The DebuggerINIT now protects itself from bus errors when doing a
  222.     stack crawl.  This reduces the possibility of VoodooMonkey crashing 
  223.     when debugging an application that trashed its own stack.
  224.     
  225.     Added an execution timing feature (thanks to code provided by John Glenn).  
  226.     If the "Time Execution" menu item is turned on in the "Control" menu,
  227.     VoodooMonkey will time execution from the time you "Run" until you hit 
  228.     the next breakpoint.  You can also time execution using the "Go Until" 
  229.     feature, (double clicking on a diamond is "Go Until").  According to 
  230.     John, this feature is accurate to within approximately 20 microseconds.
  231.     Since tracing greatly affects execution time, "Time Execution" does not 
  232.     work with stepping.  It only works with "Run" or "Go Until".
  233.     
  234.     
  235. 1.0d10 Changes
  236.     
  237.     VoodooMonkey now saves window positions for Browser, Stack Crawl, 
  238.     and Process Browser windows.
  239.     
  240.     You can now drag the PC arrow within a function to change the PC.
  241.     VoodooMonkey does not adjust A6 or the SP, so be careful moving the PC
  242.     over instructions that change the stack.
  243.     
  244.     Changing register values in the register window now works properly.
  245.     
  246.     Fixed bug in the stack crawl code that caused sporadic problems when 
  247.     stepping out of a function.
  248.     
  249.     
  250. 1.0d9 Changes
  251.  
  252.     Fixed a few crashing bugs.
  253.     
  254.     invalid pointers now display as "INVALID".    
  255.         
  256.     Menu commands for the register windows are now in the Process menu
  257.     instead of the Edit menustays in Windows menu
  258.     
  259.     You can now evaluate registers from the disassembly view, by selecting
  260.     the register name (like "A4") and selecting the "Evaluate" command.
  261.     The register will appear as a long, but can be coerced to another type 
  262.     using the "View as…" command.
  263.     
  264.     File names are now sorted properly in the browser.
  265.  
  266.     VoodooMonkey's version number now appears in the about box.
  267.  
  268.  
  269. 1.0d8 Changes
  270.  
  271.     Type casting is now available.  You can select any node in a variable window
  272.     and use the "View As…" menu command to coerce it to any type that appears
  273.     in the Sym file.
  274.  
  275.     VoodooMonkey is now able to evaluate most register based variables that
  276.     are in activations further up in the stack crawl.  This is heuristic based,
  277.     so it might not always work properly.
  278.     
  279.     Merged "Launch" and "Resume" menu commands into "Run" (just like SourceBug).  
  280.     "Run" and "Kill" now work from the browser, and stepping works when a variable
  281.     window is in front of the stack crawl.
  282.     
  283.     Fixed a clipping problem in variable windows that occured when the value of
  284.     the variable changed or a "View As" command was done by the user.
  285.     
  286.     Variable windows now display "out of scope" when you step out of the
  287.     scope the variable is declared in.  If you go back in that scope, 
  288.     the window will start displaying the variable again.
  289.     
  290.     Fixed a bug that caused autotargeting not to work for MacApp programs.
  291.  
  292.  
  293. 1.0d7 Changes
  294.     
  295.     VoodooMonkey now automatically targets running processes if it hits a breakpoint
  296.     in a non-targeted process.  Now to target a running app, just open the Sym file 
  297.     and set some breakpoints.  The process will be targeted when the breakpoint is hit,
  298.     so you no longer have to go to the Process Browser to target the process.
  299.     
  300.     Auto targeting also works if you enter VoodooMonkey from TMON, using the 
  301.     "SourceBug macro for TMON Professional" that ships with SourceBug.
  302.     
  303.     Kludged around a problem in CFront that caused some files to be displayed in the 
  304.     browser as "C".
  305.         
  306.     Fixed a problem that occured when debugging standalone code resources in 24 bit addressing.
  307.     
  308.     C unions and Pascal variant records are now displayed properly.
  309.     
  310.     Pascal subrange variables are now displayed properly.
  311.     
  312.     Enumerated types are now displayed properly.  However, the MPW C compiler doesn't
  313.     generate symbolics for enums, so you will only notice this improvement in Pascal.
  314.     
  315.     Arrays are now displayed properly.  You can expand and collapse arrays using the
  316.     outline triangles, and you can now display arrays of structs, or arrays of other
  317.     complex types.
  318.     
  319.  
  320. 1.0d6 Changes
  321.     
  322.     VoodooMonkey no longer asks you for a the executable, if it can find it in the
  323.     same directory as the Sym file.  If your Sym file is called Banana.SYM, 
  324.     VoodooMonkey will look for Banana in the same directory.  If it is not found, 
  325.     VoodooMonkey will ask for the location of Banana.
  326.     
  327.     Fixed a lot of memory leaks.
  328.     
  329.     Fixed a bug in the MPW Unmangle.o library that caused VoodooMonkey to go into an 
  330.     infinite loop when unmangling the names of certain functions.
  331.     
  332.     Fixed a bug in the stack crawl that occured when debugging recursive functions.
  333.     The pc was not properly updating when changing between activations of the same
  334.     recursive function.
  335.     
  336.     Fixed a bug that caused 1 or 2 byte register based variables to display the 
  337.     wrong value.
  338.  
  339.     The horizontal scroll bars in the source code panes of the browser and stack crawl
  340.     windows now work.
  341.     
  342.     Breakpoints no longer show up as "TRAP #5" in the disassembly.
  343.     
  344.     The disassembler now can disassemble routines in segments that aren't loaded or in 
  345.     applications that are not running.  ReadPartialResource is used, so the disassembler
  346.     does not affect the heap of the program you are debugging.
  347.     
  348.     Fixed the Untarget <process> command.
  349.     
  350.     Closing the stack crawl for a running process now untargets the process.  
  351.     Closing the stack crawl for a suspended process (as before) kills the process,
  352.     after asking "are you sure…".
  353.     For threaded programs, only closing the stack crawl for the main thread causes the
  354.     process to be untargeted or killed.
  355.  
  356.  
  357. 1.0d5 Changes
  358.  
  359.     Fixed a bug in runtime typing of HandleObjects in programs that have both
  360.     HandleObjects and PascalObjects.
  361.     
  362.  
  363. 1.0d4 Changes
  364.     
  365.     Put in support for dynamically typing PascalObjects at runtime.  
  366.     
  367.     VoodooMonkey now fixes up null type references in the type information.  
  368.     For example, sometimes when viewing a struct that has a RgnHandle as a field,
  369.     expanding or double clicking on the RgnHandle didn't work.  Now it does!
  370.     
  371.     Launching an application from the browser after it was already running used
  372.     to confuse VoodooMonkey.  Now, Launch is grayed out if the application 
  373.     is already running.
  374.     
  375.     Fixed a bug that caused a crash when closing the browser with a
  376.     variable window open.
  377.  
  378. 1.0d3 Changes
  379.  
  380.     Added a heuristic for properly evaluating handle based objects.  When
  381.     you forward declare a class in C++, CFront does not know the class is
  382.     handle based, and generates symbolics for a pointer based class.  
  383.     A heuristic is now used to detect that a pointer to a record is really a
  384.     handle, and an extra dereference is added.
  385.     
  386.     Fixed a bug that prevented you from targeting a running process.  
  387.     (To target a running process, open the Sym file for the process.
  388.     Then select the process in the Process Browser and either double-click
  389.     on it, or choose "Target <process name>" in the "Process" menu.
  390.     
  391.     Added a cheesy "View As" mechanism, similar to SourceBug.
  392.     
  393.     Fixed a bug that occured if you closed the browser before the stack crawl
  394.     window.
  395.     
  396.     Rebuilt the DebuggerINIT with newer Thread Manager headers.  This fixed
  397.     a few problems debugging threads.
  398.  
  399.  
  400. 1.0d2 Changes
  401.  
  402.     Fixed some annoying bugs
  403.     
  404.     Disabled some features that weren't quite working
  405.     
  406.     Added a "Windows" menu
  407.